iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
自我挑戰組

Go語言自學挑戰系列 第 9

第九天:流程控制(3) for 陳述式

  • 分享至 

  • xImage
  •  

for陳述式介紹

如果有一個程式需要重複執行5次該如何處理?

在還沒有for陳述式的觀念之前可能會使用以下寫法:

package main
import ("fmt")

func main() {
  fmt.Println("你好啊!!!!")
  fmt.Println("你好啊!!!!")
  fmt.Println("你好啊!!!!")
  fmt.Println("你好啊!!!!")
  fmt.Println("你好啊!!!!")
}

輸出結果如下:

你好啊!!!!
你好啊!!!!
你好啊!!!!
你好啊!!!!
你好啊!!!!

但要重複執行上千、上萬次這樣寫會超級累的~
/images/emoticon/emoticon06.gif

我們需要更有效率且聰明的方法完成-ㄝ

這時候for陳述式就登場了!!

如何for使用?

語法

for迴圈的語法如下:

for 初始值; 循環次數條件判斷; 循環次數增減 {
   // 程式
}

範例:

package main
import ("fmt")

func main() {
  //初始值=0;循環條件i<5,大於5就停止迴圈;循環次數+1
  for i:= 0; i < 5 ; i++{
  	fmt.Println("你好啊!!!!")
  }
}

輸出結果:

你好啊!!!!
你好啊!!!!
你好啊!!!!
你好啊!!!!
你好啊!!!!

使用for陳述式後程式就簡潔許,

後續如果要調整循環次數只要更改循環條件,

日後維護程式就會非常方便。

continue & break陳述式

如果執行for陳述式途中有些程式想跳過或是停止迴圈該如何處理?

這時候可以使用continue & break陳述式,

continue的功能為跳過迴圈、break為結束迴圈,

範例如下:

package main
import ("fmt")

func main() {
  for i:= 0; i < 100 ; i++{
  	
    if i == 5 {
      fmt.Println("休息一下~第",i+1,"不執行~")
      continue
    }
    if i == 10 {
      fmt.Println("執行100次太多了,執行十次就好")
      break
    }
    fmt.Println("你好啊!!!!",i+1)
    
  }
}

輸出結果:

你好啊!!!! 1
你好啊!!!! 2
你好啊!!!! 3
你好啊!!!! 4
你好啊!!!! 5
休息一下~第 6 不執行~
你好啊!!!! 7
你好啊!!!! 8
你好啊!!!! 9
你好啊!!!! 10
執行100次太多了,執行十次就好

for巢狀迴圈

for和if相同能使用巢狀結構,

如果有複雜的多層迴圈計算可使用此方法處理,

程式範例如下:

package main
import ("fmt")

func main() {
  for i:= 0; i < 2 ; i++{
  	for j:= 0; j < 3 ; j++{
    	fmt.Println("你好啊!!!!",i,"之",j,"次")
    }
  }
}

輸出結果:

你好啊!!!! 0 之 0 次
你好啊!!!! 0 之 1 次
你好啊!!!! 0 之 2 次
你好啊!!!! 1 之 0 次
你好啊!!!! 1 之 1 次
你好啊!!!! 1 之 2 次

結語

/images/emoticon/emoticon15.gif

鐵人賽完成第九天了~~

今天天氣超好~~下午來散散步~~~

參考資料

  1. https://www.w3schools.com/go/go_loops.php

上一篇
第八天:流程控制(2) Switch陳述式
下一篇
第十天:函數Function 1/2
系列文
Go語言自學挑戰29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言